1. Field of the invention
The present invention relates to the field of computer information retrieval. More particularly, the present invention relates to a method and apparatus to retrieve computer related data files when the required file name is not known until program execution time.
2. Description of the Related Art
Traditional paper telephone directory listings like the White Pages, Yellow Pages and industry specific directory listings have been around for decades. Online or Web-based directory listings are the online analogues to their familiar, traditional paper counterparts. With the advent of the Internet and the Web (World-Wide-Web), many owners and publishers of these directories have begun to offer their services online. These online directory services are expanding beyond providing simply name, address and telephone information and have begun to offer E-Mail directory listings, Web page address listings, fax directory listings, maps of the business location, additional information in a multimedia format about the business listing and much more.
Computer applications such as online directory services use database retrieval techniques to present data to users. These classes of applications are often referred to as "data driven" because the exact display of the data on the computer screen is not known until runtime. Typically, these applications provide information in response to a user request by filling-in fixed data fields in a presentation screen with data retrieved from a database. In the online directory listing example data fields are filled-in with data stored in a database. The data includes residential name or business name, address and telephone number. Optional data fields such as zip code may also be included. As the types and variety of online directory services increase, the requirement to advertise the availability of these online services also increases. Many of these new services are data driven. As an example, online directory listings may offer images of street maps over the Web. The street maps are presented in response to a user request or query. The exact query is not known until program runtime (refer to www.yahoo.com for an online example of mapping street locations). A challenge for programmers and software designers is providing the correct regional map for each user request. Software designers typically use relational databases to organize data such as images files of regional maps. The use of databases allows images of regional maps to be indexed in an organized manner in order to be retrieved with a given user query. Database records comprising a series of database elements designed to hold one or more types of data. One type of database record is designated to hold the names of image files, such as images of street maps, and names of data files. It is common to create a separate database record holding these file names. The software designer creates separate database record entries to hold these file names to enable fast, efficient retrieval of these image files in response to user search requests.
One disadvantage with the use of separate database entries for holding the names of data files is the inability to extend or expand the number of these database entries without updating the corresponding program logic. System developers using separate database entries for holding the names of data files require either that: a separate database entry be associated with every street address; or some type of indexing table lookup system must be invoked in order to display the correct regional map image. A shortcoming of this method is that the database or mapping file and associated algorithm to retrieve the correct file must be updated when new regional maps are added. So a need exists to make an extensible file retrieval system that can accommodate additional entries into a file system without the need to update the programming logic every time an addition or deletion is made.
A second problem that exists when using separate database record entries for holding the names of data files, is the need to test database references. Software programmers run tests to debug every line of programming logic designed for mapping a data file to specific data file requests. The inclusions of new files into database files requires the retesting of this programming logic. Therefore, a need exists to provide a method to retrieve files without the need to test every reference to a particular file.
A third problem, when using separate database record entries for holding the names of data files is the need to determine efficiently data file names where the data may include a large combination of distinct elements or segments. For example, certain data files in online directory listings may include a series of distinct graphical icons where each icon represents a particular electronic service. Six additional available services in an online business directory listing may include: a map of the business location; a video clip about the business, an audio clip about the business, a homepage for the business listing, E-Mail for the business listing and a fax number for the business listing. Representative graphical icons may include an icon of an envelope for E-Mail service and an icon of a film clip for video information. The online directory services displays these icons next to a particular business directory listing according to the services available. In this business directory listing example, as mentioned above, there are six distinct possible types of icons that can be displayed through a series of icon images. Calculating the possible combination of these additional six directory services, there are 2.sup.7 or 64 separate combinations of these additional online services. Each of these 64 combinations requires a unique data file name. Each data file name refers to a particular series of icons representing the online services available. As the example for six additional services above illustrates, the use of icons advertising the availability of services produces the need for an exponentially large number of file names needed to advertise these service combinations. It is important to note that the addition of every new service doubles the number of file names needed to represent all these service combinations. Stated differently, adding one new service to the six services above yields 27 or 128 separate icon image combinations that are available. Therefore, an efficient, extensible method of runtime retrieval of file names representing a large number of possible image combinations is needed.